home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_c / cug232 / userman < prev    next >
Text File  |  1987-06-17  |  22KB  |  861 lines

  1. .ds CM
  2. .TL
  3. A Little Smalltalk
  4. User Manual
  5. .AU
  6. Timothy A. Budd
  7. .po +0.2i
  8. .nr PO +0.2i
  9. .NH 1
  10. Introduction
  11. .PP
  12. This manual is intended as an aid in using the Little Smalltalk system.
  13. It is not intended to be used as an introduction to the Smalltalk
  14. language.
  15. Little Smalltalk is largely (with exceptions listed in a later section)
  16. a subset of the Smalltalk-80\s-2\u*\d\s+2 language described
  17. .FS
  18. * Smalltalk-80 is a trademark of the Xerox Corporation.
  19. .FE
  20. in [.Smalltalk blue.].
  21. A complete description of the classes included in the Little Smalltalk system
  22. and the messages they accept is given in Appendix 1.
  23. .NH 1
  24. Running the system
  25. .PP
  26. The Little Smalltalk system is invoked by typing the command \fBst\fP.
  27. The system is interactive \- that is, the user types an expression at the
  28. keyboard and the system responds by evaluating the expression and typing
  29. the result.
  30. For example,
  31. typing the expression \fB3 + 4\fP results in the value \fB7\fP being
  32. displayed on
  33. the output.  Execution is terminated by typing control\-D.  A sample
  34. execution session is shown in Figure 1.
  35. .KF
  36. .sp
  37. .DS B
  38. % st
  39. Little Smalltalk
  40.     3 + 4
  41. 7
  42.     ^D
  43. %
  44. .DE
  45. .sp
  46. .ce
  47. \fBFigure 1:\fP A Sample Little Smalltalk Session
  48. .sp
  49. .KE
  50. .PP
  51. Instance variables for the command level can be created by
  52. assigning a value to a new variable name.  Thereafter that variable can
  53. be used at the command level, although it is not known within the scope
  54. of any method.  The variable ``last'' always contains the value
  55. returned by the last expression typed.
  56. Figure 2 shows the creation of a variable.
  57. Note that the assignment arrow is formed as a two character sequence.
  58. .KF
  59. .sp
  60. .DS B
  61. .ta 5m
  62.     newvar <\(mi 2 / 3
  63.     newvar
  64. 0.666667
  65.     2 raisedTo: newvar + (4 / 3)
  66. 4
  67.     last
  68. 4
  69. .DE
  70. .sp
  71. .ce
  72. \fBFigure 2:\fP Creating Variables
  73. .sp
  74. .KE
  75. .PP
  76. The default behavior is for the value of expressions,
  77. with the exception of assignments, to be typed
  78. automatically as they are evaluated.
  79. This behavior can be modified either by using the \-d flag
  80. (see Appendix 2), or by passing a message to the pseudo
  81. variable \fBsmalltalk\fP (see Appendix 1).
  82. .PP
  83. Class descriptions must be read in from files, they cannot be entered
  84. interactively.  Class descriptions are entered using a system directive.
  85. For example, to include a class description contained in a file named
  86. \fBnewclass.st\fP, the following system directive should be issued:
  87. .sp
  88. .ce
  89. )i newclass.st
  90. .sp
  91. A list of files containing class descriptions can also be given as
  92. arguments to the st command.  The command
  93. .DS B
  94. %st file\s-2\d1\u\s+2 ... file\s-2\dn\u\s+2
  95. .DE
  96. is equivalent to the sequence
  97. .DS B
  98. .ta 5m
  99. %st
  100. Little Smalltalk
  101.     )i file\s-2\d1\u\s+2
  102.     ...
  103.     )i file\s-2\dn\u\s+2
  104. .DE
  105. .PP
  106. A table of system directives is given in Figure 3.
  107. .KF
  108. .sp
  109. .TS
  110. center box;
  111. l lw(4.5i).
  112.  
  113. )e filename    T{
  114. Edit the named file.  The Little Smalltalk system will suspend, leaving
  115. the user in an editor for making changes to the named file.  Upon leaving
  116. the editor the named file will automatically be included, as if the )i
  117. directive had been typed.
  118. T}
  119.  
  120. )g filename    T{
  121. Search for an entry in the system library area matching the filename.
  122. If found, the class descriptions in the library entry are included.
  123. This command is useful for including commonly used classes that are not
  124. part of the standard prelude, such as classes for statistics applications
  125. or graphics.
  126. T}
  127.  
  128. )i filename    T{
  129. Include the named file.  The file must contain one or more class descriptions.
  130. The class descriptions are parsed, and if syntactically legal new
  131. instances of class \fBClass\fP are added to the Smalltalk system.
  132. T}
  133.  
  134. )l filename    T{
  135. Load a previously saved environment from the named file.
  136. The current values of all variables are overridden.
  137. The file must have been created using the )s directive (below).
  138. T}
  139.  
  140. )r filename    T{
  141. Read the named file.  The file must contain Smalltalk statements, as
  142. would be typed at the keyboard.  The effect is just as if the lines
  143. of the file had been typed at the keyboard.  The file cannot contain
  144. class descriptions.
  145. T}
  146.  
  147. )s filename    T{
  148. Save the current state in the named file.  The values of all variables
  149. are saved, and can later be reloaded using the )l directive (above).
  150. T}
  151.  
  152. )!string    T{
  153. Execute the remainder of the line following the exclamation point
  154. as a Unix\s-2\u*\d\s+2 command.  Nothing is done with the output of the command,
  155. nor is the returning status of the command recorded.
  156. T}
  157.  
  158. .TE
  159. .sp
  160. .ce
  161. \fBFigure 3:\fP System Directives
  162. .sp
  163. .KE
  164. .PP
  165. Note that the )e system directive invokes an editor on a file
  166. containing class descriptions, and then automatically includes the file
  167. when the editor is exited.
  168. Classes also respond to the message \fBedit\fP, which will have the same
  169. effect as the )e directive applied to the file containing the class
  170. description.
  171. Thus the typical debug/edit/debug cycle
  172. involves repeated uses of the )e directive or the \fBedit\fP message
  173. until a desired outcome is achieved.
  174. The editor invoked by the )e directive can be changed by setting
  175. the EDITOR variable in the users environment.
  176. .NH 1
  177. Differences between Little Smalltalk and the Smalltalk-80 system
  178. .PP
  179. This section describes the differences between the language accepted by
  180. the Little Smalltalk system and the language described in
  181. [.Smalltalk blue.].  The principal reasons for these changes are
  182. as follows:
  183. .IP size 6.5m
  184. Classes which are largely unnecessary, or which could be easily
  185. simulated by other classes (e.g. Association, SortedCollection) have
  186. been eliminated in the interest of keeping the size of the standard
  187. library as small as possible.  Similarly, indexed instance variables are
  188. not supported, since to do so would increase the size of every object in
  189. the system, and they can be easily simulated in those classes in which
  190. they are important (see below).
  191. .IP portability
  192. Classes which depend upon particular hardware (e.g. BitBlt) are not included
  193. as part of the Little Smalltalk system.  The basic system assumes nothing
  194. more than ascii terminals.
  195. .IP representation
  196. The need for a textual representation for class descriptions required some
  197. small additions to the syntax for class methods (see Appendix 3).
  198. Similarly, the fact that classes and subclasses can be separately parsed,
  199. in either order, forced some changes in the scoping rules for instance
  200. variables.
  201. .PP
  202. The following sections describe these changes in more detail.
  203. .NH 2
  204. No Browser
  205. .PP
  206. The Smalltalk-80 Programming Environment described in [.Smalltalk orange.]
  207. is not included as part of the Little Smalltalk system.  The Little
  208. Smalltalk system is designed to be little, easily portable, and to
  209. rely on nothing more than basic terminal capabilities.
  210. .NH 2
  211. Internal Representation Different
  212. .PP
  213. The internal representations of objects, including processes, interpreters,
  214. and bytecodes, is entirely different in the Little Smalltalk system from
  215. the Smalltalk-80 system described in [.Smalltalk blue.].
  216. .FS
  217. * Unix is a trademark of Bell Laboratories.
  218. .FE
  219. .NH 2
  220. Fewer Classes
  221. .PP
  222. Many of the classes described in [.Smalltalk blue.] are not included as
  223. part of the Little Smalltalk basic system.  Some of these are not
  224. necessary because of the decision not to include the editor, browser,
  225. and so on as part of the basic system.  Others are omitted in the interest
  226. of keeping the standard library of classes small.  A complete list
  227. of included classes for the Little Smalltalk system is given in Appendix 1.
  228. .NH 2
  229. No Class Protocol
  230. .PP
  231. Protocol for all classes is defined as part of class \fBClass\fP.
  232. It is not possible to redefine class protocol as part of a class description,
  233. only instance protocol.
  234. The notion of metaclasses is not supported.
  235. .NH 2
  236. Cascades Different
  237. .PP
  238. The semantics of cascades has been simplified and generalized.
  239. The result of a cascaded expression is always the result of the expression
  240. to the left of the first semicolon, which is also the receiver for each
  241. subsequent continuation.  Continuations can include multiple messages.
  242. A rather nonsensical, but illustrative, example is the following:
  243. .DS B
  244. 2 + 3 ; \(mi 7 + 3 ; * 4
  245. .DE
  246. .LP
  247. The result of this expression is 5 (the value yielded by 2 + 3).  5 is also
  248. the receiver for the message \(mi 7, and that result (\(mi2) is in turn the
  249. receiver for the message + 3.  This last result is thrown away.  5 is then
  250. again used as the receiver for the message * 4, the result of which is also
  251. thrown away.
  252. .NH 2
  253. Instance Variable Name Scope
  254. .PP
  255. In the language described in [.Smalltalk blue.], an instance variable is
  256. known not only to the class protocol in which it is declared, but is also
  257. valid in methods defined for any subclasses of that class.
  258. In the Little Smalltalk system an instance variable can be referenced only
  259. within the protocol for the class in which it is declared.
  260. .NH 2
  261. Indexed Instance Variables
  262. .PP
  263. Implicitly defined indexed instance variables are not supported.
  264. In any class for which these are desired they can be easily simulated by
  265. including an additional instance variable, containing an Array, and
  266. including the following methods:
  267. .DS B
  268. .ta 4m 8m
  269. Class Whatever
  270. | indexVars |
  271. [
  272.     new: size
  273.         indexVars <\(mi Array new: size
  274.  
  275. |    at: location
  276.         \(ua indexVars at: location
  277.  
  278. |    at: location put: value
  279.         indexVars at: location put: value
  280.  
  281.     ...
  282. .sp
  283. .DE
  284. .PP
  285. The message new: can be used with any class, with an effect similar to
  286. new.  That is, if a new instance of the class is created by sending the
  287. message new: to the class variable, the message is immediately passed
  288. on to the new instance, and the result returned is used as the result of
  289. the creation message.
  290. .NH 2
  291. No Pool Variables
  292. .PP
  293. The concepts of pool variables, global variables, or class variables are
  294. not supported.
  295. In their place there is a new pseudo-variable, \fBsmalltalk\fP, which
  296. responds to the messages \fBat:\fP and \fBat:put:\fP.
  297. The keys for this collection can be arbitrary.
  298. Although this facility is available, its use is often a sign of poor
  299. program design, and should be avoided.
  300. .NH 2
  301. No Associations
  302. .PP
  303. The class Dictionary stores keys and values separately, rather than
  304. as instances of Association.  The class Association, and all messages
  305. referring to Associations have been removed.
  306. .NH 2
  307. Generators in place of Streams
  308. .PP
  309. The notion of stream has been replaced by the slightly different notion of
  310. \fIgenerators\fP, in particular the use of the messages \fIfirst\fP
  311. and \fInext\fP in subclasses of \fBCollection\fP.
  312. External files are supported by an explicit class \fBFile\fP.
  313. .NH 2
  314. Primitives Different
  315. .PP
  316. Both the syntax and the use of primitives has been changed.
  317. Primitives provide an interface between the Smalltalk world and the
  318. underlying system, permitting the execution of operations that cannot be
  319. specified in Smalltalk.  In Little Smalltalk, primitives cannot fail and
  320. must return a value (although they may, in error situations, print an error
  321. message and return \fBnil\fP).
  322. The syntax for primitives has been altered to permit the specification of
  323. primitives with an arbitrary number of arguments.  The format for a
  324. primitive call is as follows:
  325. .DS B
  326. <primitive \fBnumber\fP \fIargumentlist\fP >
  327. .DE
  328. Where \fBnumber\fP is the number of the primitive to be executed
  329. (which must be a value between 1 and 255),
  330. and \fIargumentlist\fP is a list of Smalltalk primary expressions (see
  331. Appendix 2).  Appendix 4 lists the meanings of each of the currently
  332. recognized primitive numbers.
  333. .NH 2
  334. Byte Arrays
  335. .PP
  336. A new syntax has been created for defining an array composed entirely of
  337. unsigned integers in the range 0-255.  These arrays are given a very
  338. tight encoding.  The syntax is a pound sign, followed by a left square
  339. brace, followed by a sequence of numbers in the range 0 to 255, followed by
  340. a right square brace.
  341. .DS B
  342. #[ \fInumbers\fP ]
  343. .DE
  344. .LP
  345. Byte Arrays are used extensively internally.
  346. .NH 2
  347. New Pseudo Variables
  348. .PP
  349. In addition to the pseudo variable \fBsmalltalk\fP already mentioned,
  350. another pseudo variable, \fBselfProcess\fP, has beed added to the Little
  351. Smalltalk system.  \fBselfProcess\fP returns the currently executing process,
  352. which can then be passed as an argument to a semaphore, or
  353. be used as a receiver for a message valid for class \fBProcess\fP.
  354. Like \fBself\fP and \fBsuper\fP, \fBselfProcess\fP cannot be used at
  355. the command level.
  356. .NH 2
  357. No Dependency
  358. .PP
  359. The notion of dependency, and automatic dependency updating, is not
  360. included in Little Smalltalk.
  361. .[]
  362. .ds CH
  363. .bp
  364. .SH
  365. .ce 2
  366. Appendix 1
  367. Class Descriptions
  368. .PP
  369. The messages accepted by the classes included in the Little Smalltalk
  370. standard library are described in the following pages.
  371. A list of the classes
  372. defined, where indentation is used to imply subclassing, is given below:
  373. .DS I
  374. .ta 3m 6m 9m 12m 15m
  375. Object
  376.     UndefinedObject
  377.     Symbol
  378.     Boolean
  379.         True
  380.         False
  381.     Magnitude    
  382.         Char
  383.         Number
  384.             Integer
  385.             Float
  386.         Radian
  387.         Point
  388.     Random
  389.     Collection
  390.         Bag
  391.         Set
  392.         KeyedCollection
  393.             Dictionary
  394.                 Smalltalk
  395.             File
  396.             SequenceableCollection
  397.                 Interval
  398.                 LinkedList
  399.                     Semaphore
  400.                 File
  401.                 ArrayedCollection
  402.                     Array
  403.                     ByteArray
  404.                     String
  405.     Block
  406.     Class
  407.     Process
  408. .DE
  409. .PP
  410. In the descriptions of each message the following notes may occur:
  411. .IP \fId\fP
  412. Indicates the effect of the message differs slightly from that given
  413. in [.Smalltalk blue.].
  414. .IP \fIn\fP
  415. Indicates the message is not included as part of the language defined
  416. in [.Smalltalk blue.].
  417. .IP \fIr\fP
  418. Indicates the protocol for the message overrides a protocol given in
  419. some superclass.  Only where the logical effect of this overriding is
  420. important is the message given a second time; some messages, such as
  421. copy, are overridden in many classes but are not described in the documentation
  422. because the logical effect remains the same.
  423. .bp
  424. .SH
  425. .ce 2
  426. Appendix 2
  427. Man Page
  428. .PP
  429. A Unix man page for the st command is given on the following page.
  430. .bp
  431. .SH
  432. .ce 2
  433. Appendix 3
  434. Syntax Charts
  435. .PP
  436. Syntax charts for the language accepted by the Little Smalltalk system
  437. are described on the following pages.
  438. The following is an example class description:
  439. .DS B
  440. Class Set :Collection
  441. | dict |
  442. [
  443.         new
  444.                 dict <\(mi Dictionary new
  445.  
  446. |       add: newElement
  447.                 dict at: newElement
  448.                      ifAbsent: [dict at: newElement put: 1]
  449.  
  450. |       remove: oldElement ifAbsent: exceptionBlock
  451.         dict removeKey: oldElement ifAbsent: exceptionBlock
  452.  
  453. |       size
  454.                 \(ua dict size
  455.  
  456. |       occurrencesOf: anElement
  457.                 \(ua dict at: anElement ifAbsent: [0]
  458.  
  459. |       first
  460.                 dict first.
  461.         \(ua dict currentKey
  462.  
  463. |       next
  464.                 dict next.
  465.         \(ua dict currentKey
  466.  
  467. ]
  468. .DE
  469. .bp
  470. .SH
  471. .ce 2
  472. Appendix 4
  473. Primitive Numbers
  474. .PP
  475. The following chart gives the function performed by each primitive in the
  476. Little Smalltalk system.
  477. .SH
  478. Information about objects
  479. .IP 0
  480. (not used )
  481. .IP 1
  482. class of an object
  483. .IP 2
  484. superobject of an object
  485. .IP 3
  486. test if class responds to new
  487. .IP 4
  488. size of object
  489. .IP 5
  490. hash value
  491. .IP 6
  492. test if two built-in objects are of the same type
  493. .IP 7
  494. object equality testing ( == )
  495. .IP 8
  496. various switch toggles
  497. .IP 9
  498. numerical generality testing
  499. .SH
  500. Integer manipulation
  501. .IP 10
  502. integer addition (both args must be integer)
  503. .IP 11
  504. integer subtraction
  505. .IP 12
  506. integer < test
  507. .IP 13
  508. integer > test
  509. .IP 14
  510. integer \(<= test
  511. .IP 15
  512. integer \(>= test
  513. .IP 16
  514. integer = test
  515. .IP 17
  516. integer ~= test
  517. .IP 18
  518. integer multiplication
  519. .IP 19
  520. integer //
  521. .SH
  522. Bit manipulation and other integer valued functions
  523. .IP 20
  524. gcd:
  525. .IP 21
  526. bitAt:
  527. .IP 22
  528. bitOr:
  529. .IP 23
  530. bitAnd:
  531. .IP 24
  532. bitXor:
  533. .IP 25
  534. bitShift:
  535. .IP 26
  536. radix:
  537. .IP 27
  538. not used
  539. .IP 28
  540. integer quo:
  541. .IP 29
  542. integer rem:
  543. .SH
  544. Other integer functions
  545. .IP 30
  546. doPrimitive:withArguments:
  547. .IP 31
  548. not used
  549. .IP 32
  550. convert random integer to random float
  551. .IP 33
  552. bitInvert
  553. .IP 34
  554. highBit
  555. .IP 35
  556. randomNumber (argument is seed )
  557. .IP 36
  558. asCharacter
  559. .IP 37
  560. asString
  561. .IP 38
  562. factorial
  563. .IP 39
  564. asFloat
  565. .SH
  566. Character manipulation
  567. .IP 40
  568. not used
  569. .IP 41.
  570. not used
  571. .IP 42
  572. character < test
  573. .IP 43
  574. character > test
  575. .IP 44
  576. character \(<= test
  577. .IP 45
  578. character \(>= test
  579. .IP 46
  580. character = test
  581. .IP 47
  582. character ~= test
  583. .IP 48
  584. not used
  585. .IP 49
  586. not used
  587. .SH
  588. Character unary functions
  589. .IP 50
  590. digitValue
  591. .IP 51
  592. isVowel
  593. .IP 52
  594. isLetter
  595. .IP 53
  596. isLowerCase
  597. .IP 54
  598. isUpperCase
  599. .IP 55
  600. isSeparator
  601. .IP 56
  602. isAlphaNumeric
  603. .IP 57
  604. caseShift
  605. .IP 58
  606. asString
  607. .IP 59
  608. asciiValue
  609. .SH
  610. Floating point manipulation
  611. .IP 60
  612. floating point addition (both args must be float)
  613. .IP 61
  614. floating point subtraction
  615. .IP 62
  616. floating point < test
  617. .IP 63
  618. floating point > test
  619. .IP 64
  620. floating point \(<= test
  621. .IP 65
  622. floating point \(>= test
  623. .IP 66
  624. floating point = test
  625. .IP 67
  626. floating point ~= test
  627. .IP 68
  628. floating point multiplication
  629. .IP 69
  630. floating point division
  631. .SH
  632. Other floating point operations
  633. .IP 70
  634. ln
  635. .IP 71
  636. sqrt
  637. .IP 72
  638. floor
  639. .IP 73
  640. ceiling
  641. .IP 74
  642. not used
  643. .IP 75
  644. integerPart
  645. .IP 76
  646. fractionalPart
  647. .IP 77
  648. gamma
  649. .IP 78
  650. asString
  651. .IP 79
  652. exp
  653. .SH
  654. Other numerical functions
  655. .IP 80
  656. normalize number to be within 0 and 2\(*p.
  657. .IP 81
  658. sin
  659. .IP 82
  660. cos
  661. .IP 83
  662. not used
  663. .IP 84
  664. arcSin
  665. .IP 85
  666. arcCos
  667. .IP 86
  668. arcTan
  669. .IP 87
  670. not used
  671. .IP 88
  672. raisedTo:
  673. .IP 89
  674. radix:
  675. .SH
  676. Symbol Commands
  677. .IP 90.
  678. not used
  679. .IP 91
  680. symbol comparison, returns true or false.
  681. .IP 92
  682. printString
  683. .IP 93
  684. asString
  685. .IP 94
  686. print (used internally)
  687. .IP 95
  688. not used
  689. .IP 96
  690. not used
  691. .IP 97
  692. build a new class, arguments are class name, superclass name, instance
  693. variables, messages, methods, context size.
  694. .IP 98
  695. insert an object into class dictionary, first argument is symbol,
  696. second argument is class definition
  697. .IP 99
  698. find an object in class dictionary.  argument is symbol.
  699. .SH
  700. String operations
  701. .IP 100
  702. string length
  703. .IP 101
  704. string compare, case important \- return \(mi1, 0 or 1.
  705. .IP 102
  706. string compare, case not important
  707. .IP 103
  708. string catenation
  709. .IP 104
  710. string at:
  711. .IP 105
  712. string at:put:
  713. .IP 106
  714. copyFrom:length:
  715. .IP 107
  716. copy (new string with same chars)
  717. .IP 108
  718. asSymbol
  719. .IP 109
  720. string printString
  721. .SH
  722. Array manipulation
  723. .IP 110
  724. build an untyped object of given size, argument is integer size.
  725. .IP 111
  726. index variable get (first argument is object, second is index)
  727. .IP 112
  728. index variable put (first argument is object, second is index,
  729. third argument is expression)
  730. .IP 113
  731. object grow (returns a new object with same instance variable values
  732. as first argument, but with second argument tacked on end as new instance variable)
  733. .IP 114
  734. build an instance of \fBArray\fP of the given size.
  735. .IP 115
  736. new string of given size
  737. .IP 116
  738. ByteArray new:
  739. .IP 117
  740. ByteArray size
  741. .IP 118
  742. ByteArray at:
  743. .IP 119
  744. ByteArray at:put:
  745. .SH
  746. Output and error messages
  747. .IP 120
  748. print string with no return
  749. .IP 121
  750. print string with return
  751. .IP 122
  752. general error - first argument is receiver, second is error string
  753. .IP 123
  754. print string on error output (with return)
  755. .IP 124
  756. not used
  757. .IP 125
  758. unix system call
  759. .IP 126
  760. print a string at a specific point on the terminal
  761. .IP 127
  762. block return without surrounding context
  763. .IP 128
  764. reference count less than zero, first argument is guilty object
  765. .IP 129
  766. does not respond error, first argument is receiver, second is message.
  767. .SH
  768. File operations
  769. .IP 130
  770. file open, first argument is name, second argument is mode
  771. .IP 131
  772. file read
  773. .IP 132
  774. file write
  775. .IP 133
  776. set file mode, first argument is file, second is mode indicator (anInteger)
  777. .IP 134
  778. compute file size in bytes
  779. .IP 135
  780. file set location (at:) second argument is location (anInteger)
  781. .IP 136
  782. return current file offset in bytes
  783. .IP 137
  784. not used
  785. .IP 138
  786. not used
  787. .IP 139
  788. not used
  789. .SH
  790. Process management
  791. .IP 140
  792. block execute (trapped by interpreter)
  793. .IP 141
  794. new process (withArguments:)
  795. .IP 142
  796. terminate a process
  797. .IP 143
  798. perform:withArguments: (trapped by interpreter)
  799. .IP 144.
  800. not used
  801. .IP 145
  802. set state
  803. .IP 146
  804. return state
  805. .IP 148
  806. start atomic action
  807. .IP 149
  808. end atomic action
  809. .SH
  810. Operations on classes
  811. .IP 150
  812. class edit
  813. .IP 151
  814. superclass of a class
  815. .IP 152
  816. class name (a Symbol)
  817. .IP 153
  818. new instance of a class
  819. .IP 154
  820. list all commands class responds to
  821. .IP 155
  822. respondsTo: , second argument is a symbol
  823. .IP 156
  824. class view (drop into editor, but no include)
  825. .IP 157
  826. class list
  827. .IP 158
  828. variables (returns an array of symbols)
  829. .IP 159
  830. not used
  831. .SH
  832. Date and Time
  833. .IP 160
  834. current date and time as string
  835. .IP 161
  836. seconds time counter
  837. .IP 162
  838. clear the screen
  839. .SH
  840. Plot(3) interface
  841. .IP 170
  842. clear the screen
  843. .IP 171
  844. move the cursor (move(x,y))
  845. .IP 172
  846. draw a line (cont(x,y))
  847. .IP 173
  848. draw a point (point(x,y))
  849. .IP 174
  850. draw a circle (circle(x,y,r))
  851. .IP 175
  852. draw an arc (arc(x,y,x0,y0,x1,y1))
  853. .IP 176
  854. establish the coordinate space (space(a,b,c,d))
  855. .IP 177
  856. draw a line (line(a,b,c,d))
  857. .IP 178
  858. print a label (label(s))
  859. .IP 179
  860. establish a line type (linemod(s))
  861.